package com.gzx.bi.modular.goals.monthly.entity;

import lombok.Data;
import org.springframework.data.annotation.Id;
import vip.xiaonuo.common.pojo.CommonEntity;

import java.math.BigDecimal;

/**
 * @author zjt
 * @description
 * @date 2025/1/13 14:00
 */
@Data
public class GzxMonthlyGoals extends CommonEntity {

    /**
     * 自增主键
     */
    @Id
    private Long id;

    /**
     * 项目编码
     */
    private String projectCode;

    /**
     * 所属部门
     */
    private Long deptId;

    /**
     * 所属月份
     */
    private Integer belongingMonth;

    /**
     * 批次号
     */
    private String batchNumber;

    /**
     * 人数
     */
    private Integer personnelCount;

    /**
     * 案件数量
     */
    private Integer caseCount;

    /**
     * 案件总金额，默认值为 0.00
     */
    private BigDecimal totalArrearsAmount;

    /**
     * 月目标金额
     */
    private BigDecimal monthlyTargetAmount;

    /**
     * 月累计达成金额
     */
    private BigDecimal monthlyAchievementAmount;

    /**
     * 当月甲方还款金额
     */
    private BigDecimal monthlyClientAmount;

    /**
     * 月度分公司上报还款金额
     */
    private BigDecimal monthlySubsidiaryAmount;

    /**
     * 月还款差额
     */
    private BigDecimal monthlyVarianceAmount;

    /**
     * 结佣比例
     */
    private BigDecimal commissionRatio;

    /**
     * 佣金，计算公式为：月累计达成金额 * 结佣比例，并保留两位小数
     */
    private BigDecimal commission;

    /**
     * 垫付金额
     */
    private BigDecimal advancePayment;

    /**
     * 去掉垫付的佣金，计算公式为：佣金 - 垫付金额
     */
    private BigDecimal commissionExclAdv;

    /**
     * 佣金目标
     */
    private BigDecimal commissionTarget;

    /**
     * 佣金达成率，计算公式为：去掉垫付的佣金 / 佣金目标，并保留两位小数
     */
    private BigDecimal commissionAchievementRate;

    /**
     * 月还款达成率，计算公式为：月累计达成金额 / 月目标金额，并保留两位小数
     */
    private BigDecimal monRepayAr;

    /**
     * 明细JSON
     */
    private String detailJson;
    /**
     * 佣金比例明细
     */
    private String commissionRatioList;

    /**
     * 上月月度目标
     */
    private BigDecimal lastMonthlyTargetAmount;

    /**
     * 上月累计达成
     */
    private BigDecimal lastMonthlyAchievementAmount;

    /**
     * 上月累计垫付
     */
    private BigDecimal lastMonthlyAdvancePayment;

    /**
     * 上月达成率
     */
    private BigDecimal lastMonRepayAr;

    /**
     * 环比差异
     */
    private BigDecimal momDiff;
}
